package solicitudes.logica;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import solicitudes.accesoDatos.DaoEstado;
import solicitudes.modelo.Estado;

// casos de uso relacionados con productos
@Stateless
public class ServicioEstados {

	// EJBs
	
	@EJB	
	DaoEstado		daoEstado;
	
	
	// casos de uso
	
	
	// CU : agregar producto
	public void agregarEstado( Long id, String nombre, String descripcion ) throws Exception {
		
		// verifica que no exista otro estado con el mismo id
		Estado estadoExistente = daoEstado.findById(id);
		if ( estadoExistente != null ) {
			throw new Exception( "ya existe otro estado con el mismo id");
		}
		
		// verifica que no exista otro estado con el mismo nombre
		estadoExistente = daoEstado.buscarPorNombre(nombre);
		if ( estadoExistente != null ) {
			throw new Exception( "ya existe otro estado con el mismo nombre");
		}
		
		// verifica que la descripción no esté en blanco
		if ( descripcion == null 
				|| ( descripcion != null && descripcion.trim().equals(""))) {
			throw new Exception( "la descripción no puede estar en blanco" );
		}
		
		Estado estado = new Estado();
		estado.setId(id);
		estado.setNombre(nombre);
		estado.setDescripcion(descripcion);
		
		daoEstado.create(estado);
				
	}
	
}
